Dynamic generation of formatted user interfaces in software environments

ABSTRACT

Methods and systems for selecting multiple entities of a model or models to set or change data of the multiple entities together in a modeling environment are disclosed. When users create or edit a model or models, information on the entities of the model or models is provided to the users so that the users can select multiple entities in the model or models. On the selection of the multiple entities in the model or models, the modeling environment dynamically generates a user interface for the selected entities of the model or models for displaying, setting or changing data of the selected entities together. The user interface may display data of the selected entities that is not common to all of the selected entities in a different manner so that the users can identify common data of the selected entities.

FIELD OF THE INVENTION

The present invention relates generally to software environments andmore particularly to methods and systems for dynamically generating aformatted user interface in the software environments.

BACKGROUND OF THE INVENTION

User interfaces are used in software development systems, such assoftware systems for developing bock diagrams, to enable users to enterdata for creating and running the bock diagrams. Various classes ofblock diagrams describe computations that can be performed onapplication specific computational hardware, such as a computer,microcontroller, FPGA, and custom hardware. Classes of such blockdiagrams include time-based block diagrams such as those found withinSimulink® from The MathWorks, Inc. of Natick, Mass., state-based andflow diagrams such as those found within Stateflow® from The MathWorks,Inc. of Natick, Mass., and data-flow diagrams and the Unified ModelingLanguage (UML). A common characteristic among these various forms ofblock diagrams is that they define semantics on how to execute thediagram.

In a block diagram modeling environment, data should be set for eachcomponent block to define the attributes, operations and othercharacteristic of the component block. The block diagram modelingenvironment may provide a dialog for entering the properties andparameters of the component block, such as a gain block. In theconventional modeling environment, a distinction is made betweenproperties and parameters of the component block where parameters have adirect bearing on the functionality of the corresponding component blockwhile properties may affect the execution in which the component blockis used. In Simulink®, for example, the property dialog of a gain blockspecifies ‘Description,’ ‘Tag,’ ‘Open function,’ etc., which have nodirect effect on the execution in which the gain block is used. Theparameter dialog of the gain block specifies the gain value to be usedas the factor in a multiplication, how this multiplication is to beexecuted and whether the result saturates in case of fixed-pointcomputations, which determine the functioning of the gain block. Theparameter dialog uses graphical user interface elements such as apull-down list to specify the type of multiplication and a checkbox tospecify whether saturation is allowed. This restricts the user input andprevents mistakes while providing immediate feedback as to which optionsare available for each of the selection mechanisms.

An important aspect of the use of graphical user interface elements toallow users to modify properties but also parameters and other data ofthe underlying block diagram model is the selection mechanism. Ingeneral, an entity has to be selected for which the properties andrelated data are listed and to which the new values apply. Theconventional block diagram modeling environment allows users to select asingle component block for setting or changing the data of the selectedcomponent block. However, allowing only one component block as theobject of setting or changing data is too restrictive andtime-consuming. Therefore, it is desired to select multiple componentblocks to set up or change data of the multiple component blockstogether.

SUMMARY OF THE INVENTION

The present invention provides methods and systems for selectingmultiple entities of one or more objects to set or change data of themultiple entities together in a software environment. In an illustrativeembodiment of the present invention, one or more models may be loaded ina modeling environment. When users create or edit the model or models,information on the entities of the model or models is provided to theusers so that the users can select multiple entities in the model ormodels. The entities in the model or models may include configurations,subsystems, component elements, etc. of the model or models. On theselection of the multiple entities in the model or models, the modelingenvironment dynamically generates a user interface for displaying,setting or changing data of the selected entities together. The userinterface may enable the users to edit the common data of the selectedentities together. The user interface may display the data of theselected entities that is not common to all of the selected entities ina different manner so that the users can identify the common data of theselected entities. Those of ordinary skill in the art will appreciatethat the modeling environment is illustrative and the present inventionmay apply to other software environments.

In one aspect of the illustrative embodiment, a method is provided forgenerating a user interface in a software environment. Users are able toselect a plurality of entities in one or more objects loaded in thesoftware environment. In response to the users' selection of theplurality of entities, a user interface is dynamically generated forediting information associated with the selected plurality of entities.

In another aspect of the present invention, a method is provided forproviding a dynamic dialog interface in a modeling environment. A firstuser interface element is displayed for displaying entities of one ormore models loaded in the modeling environment. Wherein the firstinterface element enables users to select multiple entities displayed inthe first user interface element. In response to users' section ofmultiple entities, a second user interface element is displayed fordisplaying attributes associated with the selected multiple entities.

In still another aspect of the present invention, a medium is providedfor holding instructions executable in a computational device thatprovides an environment for a software system. In the execution of theinstructions, users are able to select a plurality of entities in one ormore objects loaded in the software environment. In response to theusers' selection of the plurality of entities, a user interface isdynamically generated for editing information associated with theselected plurality of entities.

In yet still another aspect of the present invention, a medium isprovided for holding instructions executable in a computational devicethat provides an environment for modeling a system. On the execution ofthe instructions, a first user interface element is displayed fordisplaying entities of one or more models loaded in the modelingenvironment. The first interface element enables users to selectmultiple entities displayed in the first user interface element. Inresponse to users' selection of multiple entities, a second userinterface element is displayed for displaying attributes associated withthe selected multiple entities.

The present invention dynamically generates a user interface for editingdata of multiple entities in one or more models together. By enablingusers to edit data of multiple entities together in the dynamicallygenerated user interface, the present invention saves time fordeveloping software systems, in particular, that include same or similartypes of component elements in the software systems.

BRIEF DESCRIPTION OF THE DRAWINGS

The aforementioned features and advantages, and other features andaspects of the present invention, will become better understood withregard to the following description and accompanying drawings, wherein:

FIG. 1 shows an exemplary computational device suitable for practicingthe illustrative embodiment of the present invention;

FIG. 2 depicts an exemplary application running on the computationaldevice depicted in FIG. 1, which provides a block diagram modelingenvironment for modeling dynamic systems;

FIG. 3 is a flow chart showing an exemplary operation of theillustrative embodiment of the present invention for dynamicallygenerating a user interface for the multiple entities of one or moremodels;

FIG. 4 is a flow chart showing an exemplary operation of theillustrative embodiment of the present invention for displaying data ofthe selected entities in the dynamically generated user interface;

FIG. 5 is a flow chart showing another exemplary operation of theillustrative embodiment of the present invention for displaying data ofthe selected entities in the dynamically generated user interface;

FIGS. 6 and 7 are exemplary GUIs including a pane for displaying data ofthe selected entities in a model or models;

FIG. 8 is a flow chart showing an exemplary operation of anotherillustrative embodiment of the present invention for dynamicallygenerating a user interface for the multiple entities of one or moremodels; and

FIG. 9 is another exemplary GUI including a pane for displaying data ofthe selected entities in a model or models.

DETAILED DESCRIPTION

The illustrative embodiment of the present invention provides a userinterface that is dynamically generated on the users' selection ofmultiple entities in a model or models loaded in a block diagrammodeling environment. Although the illustrative embodiment of thepresent invention will be described below relative to the block diagrammodeling environment, those of ordinary skill in the art will appreciatethat the present invention can apply to other software environment, suchas software development systems. In the illustrative embodiment, one ormore models may be loaded in the block diagram modeling environment sothat users can create or edit the model or models. When the users createor edit the model or models, a partial or complete set of entities inthe loaded model or models may be provided to the users so that theusers can select one or more entities in the model or models. Theentities of the model or models may include subsystems and componentblocks of the model or models. One of skill in the art will appreciatethat the entities provided on the list may include any entities that arerequired for documenting, editing, managing, or executing the model ormodels, such as the configurations of the model or models with aparticular target for code generation.

On the selection of multiple entities in the set, the block diagrammodeling environment dynamically generates a user interface fordisplaying and editing the data of the selected entities. The layout ofthe user interface may be formatted with general graphical userinterface widgets, for example, in dialog boxes. The formatted userinterface may consist of user interface elements that are positionedfollowing a layout other than a single horizontal or verticalarrangement. In the illustrative embodiment, the formatted userinterface may refer to a more general concept than a user interface thatconsists of a list view with properties, values and property/valuepairs.

The user interface may enable the users to edit data of the selectedentities that relates to the attributes, operations and othercharacteristic of the selected entities. The attributes of the entitiesmay include properties, parameters and other data of the componentsblock. The parameters of the component blocks may have a direct bearingon the functionality of the corresponding blocks while the properties ofthe components blocks may affect the execution the model in which theblocks are used. The operations of the entities may include methodsoperating on the selected entities. The user interface may enable theusers to edit the common data of the entities together. The data of theentities that is not common to all of the selected entities aredisplayed in the user interface in a different manner, for example, in adifferent color so that the users can identify the common data of theselected entities.

The illustrative embodiment will be described solely for illustrativepurposes relative to models implemented in a block diagram modelingenvironment. “Block diagram” will be used hereinafter as described abovein the Background of the Invention. Although the illustrative embodimentwill be described relative to models implemented in the block diagrammodeling environment, one of skill in the art will appreciate that thepresent invention may apply to models implemented in other modelingenvironments including textual modeling environments, such as commandline modeling environments, and different graphical modelingenvironments, such as state-based and flow diagram modeling environments, data flow modeling environments, and structure modeling environments.

FIG. 1 is an exemplary computational device 100 suitable for practicingthe illustrative embodiment of the present invention, which provides ablock diagram modeling environment. One of ordinary skill in the artwill appreciate that the computational device 100 is intended to beillustrative and not limiting of the present invention. Thecomputational device 100 may take many forms, including but not limitedto a workstation, server, network computer, quantum computer, opticalcomputer, bio computer, Internet appliance, mobile device, a pager, atablet computer, and the like.

The computational device 100 may be electronic and include a CentralProcessing Unit (CPU) 110, a memory device 120, storage medium 130, aninput control 140, a network interface 160, a MODEM 150, a display 170,etc. The CPU 110 controls each component of the electronic device 100 toprovide the block diagram modeling environment. The memory 120 fetchesfrom the storage 130 and provides to the CPU 110 code that needs to beaccessed by the CPU 110 to operate the electronic device 100 and to runthe block diagram modeling environment. The storage 130 usually containssoftware tools for applications. The storage 130 includes, inparticular, code 131 for the operating system (OS) of the device, code132 for applications running on the operation system includingapplications for the block diagram modeling environment, and data 133for the models created in the block diagram modeling environment.

The input control 140 may interface with a keyboard 180, a mouse 190,and other input devices. The electronic device 100 may receive throughthe input control 140 input data necessary for creating models in theblock diagram modeling environment, such as the selection of theattributes and operations of component blocks in the models. Theelectronic device 100 may display in the display 170 the user interfacesdynamically generated for editing data of the selected multiple entitiestogether. The network interface 160 and the MODEM 150 enable theelectronic device 100 to communicate with other electronic devicesthrough communication networks, such as Internet, intranet, LAN (LocalArea Network), WAN (Wide Area Network) and MAN (Metropolitan AreaNetwork). The communication facilities may support the distributedimplementations of the present invention.

FIG. 2 depicts an exemplary application running on the electronic device100 depicted in FIG. 1, which provides a block diagram modelingenvironment 200 for modeling dynamic systems. An exemplary block diagrammodeling environment may be found in Simulink® from The MathWorks, Inc.The illustrative embodiment will be described relative to a modelimplemented in Simulink®. Nevertheless, those who are skilled in the artwill appreciate that the present invention may be practiced relative tomodels implemented in other block diagram modeling environments,including but not limited to LabVIEW from National InstrumentsCorporation of Austin, Tex., and Rational Rose from IBM of White Plains,N.Y.

Simulink® provides tools for modeling and simulating a variety ofdynamic systems in one integrated, graphical environment. Simulink®enables users to design a block diagram for a target system, simulatethe system's behavior, analyze the performance of the system, and refinethe design of the system. Simulink® allows users to design targetsystems through a user interface that allows drafting of block diagrammodels of the target systems. All of the blocks in a block libraryprovided by Simulink and other programs are available to users when theusers are building the block diagram of the target systems. Individualusers may be able to customize this model block to: (a) reorganizeblocks in some custom format, (b) delete blocks they do not use, and (c)add custom blocks they have designed. The blocks may be dragged throughsome human-machine interface (such as a mouse or keyboard) from theblock library on to the window (i.e., model canvas). Simulink® includesa block diagram editor that allows users to perform such actions asdraw, edit, annotate, save, and print out block diagram representationsof target systems. The block diagram editor is a graphical userinterface (GUI) component that allows drafting of block diagram modelsby users. In Simulink®, there is also a textual interface with a set ofcommands that allow interaction with the graphical editor, such as thetextual interface provided in MATLAB®. Using this textual interface,users may write special scripts that perform automatic editingoperations on the block diagram. Simulink® also allows users to simulatethe designed target systems to determine the behavior of the systems.Simulink® includes a block diagram model processing engine 230 thatcarries out the task of compiling and linking the block diagram toproduce an “in-memory executable” version of the model that is used forgenerating code and/or simulating a block diagram model.

The block diagram modeling environment 200 may include at least a blockdiagram editor 210 and a block diagram execution engine 240. The editor210 allows users to perform such actions as draw, edit, annotate, save,and print out block diagram representations of systems. The blockdiagram editor 210 is a graphical user interface (GUI) component thatallows drafting of block diagram models by the users. Methods used inediting are called by the block diagram editor 210 in order to renderthe block appropriately in the GUI of its parent block diagram. Forinstance, this set of methods may include a BlockDrawIcon method thatdetermines the shape the block icon has on the GUI. The block diagrameditor 210 may allow users to specify the parameters for the block whenthey use it in their models. A user generally interacts with a set ofwindows that act as canvases for the model. There is generally more thanone window for a model because models may be partitioned into multiplehierarchical levels through the use of subsystems.

The block diagram execution engine 240 contributes to the modelingsoftware task of enabling the computation and tracing of a dynamicsystem's outputs from its block diagram model. The model processingengine 230 carries out the task of compiling and linking the blockdiagram to produce an “in-memory executable” version of the model thatis used for generating code and/or simulating or linearizing a blockdiagram model. The execution of the block-diagram may also be referredto as simulation. The compilation stage involves preparing datastructures and evaluating parameters, configuring and propagating blockcharacteristics, determining block connectivity, and performing blockreduction and block insertion. In the link stage, the model processingengine 230 uses the result of the compiled stage to allocate memoryneeded for the execution of the various components of the block diagram.The linking stage also produces block method execution lists which areused by the simulation or linearization of the block diagram. Afterlinking has been performed, the model processing engine 230 may generatecode. If this stage is performed, then the stages that follow use thegenerated code during the execution of the block diagram. If this stageis skipped completely, then the execution engine 240 uses aninterpretive mode of execution for the block diagram.

FIG. 3 is a flow chart showing an exemplary operation of the blockdiagram modeling environment 200 for dynamically generating a userinterface for displaying or editing data of multiple entities of one ormore models together. Users may load one or more models at the same timein the modeling environment 200 (step 310). For example, one model maybe loaded and edited as depicted in FIG. 6, or multiple models may beloaded and edited together as depicted in FIG. 7. The editor 210 maydisplay a partial or complete list of entities in the model or modelsloaded in the modeling environment so that the users can select one ormore entities on the list (step 320). The list may contain the entitiesof the model or models such as: configurations, subsystems and componentblocks and connections. The list displayed by the editor 210 will bedescribed below in more detail with reference to FIGS. 6, 7 and 9. Ifthe editor 210 displays the list of entities in the model or modelsloaded in the modeling environment, the users may select one ore moreentities on the list to edit the data of the selected entities. If theusers select one or more entities on the list (step 330), the modelingenvironment dynamically generates a user interface for displaying and/orediting the data of the selected entities together (step 340). The usersmay click one or more entities using a pointing device 190 to select oneor more entities on the list. Alternatively, the users may input one ormore criteria for searching entities using a command line interface toselect one or more entities on the list. In the criteria search, theusers may repeat the search with different criteria on previous searchresults to narrow down the search results. Therefore, the criteriasearch may be implemented as a hierarchical multi-criteria searchmechanism. The user interface may include data for the attributes andoperations of the selected entities. The dynamic generation of the userinterface will be described below in more detail with reference to FIGS.4, 5 and 8.

FIG. 4 is a flow chart showing an exemplary operation of theillustrative embodiment of the present invention that displays theintersection of the data for the selected entities. In the illustrativeembodiment, the modeling environment displays a user interface forediting the data of the multiple entities in one or more models loadedin the modeling environment (step 410). The modeling environmentdetermines data of each of the selected entities based on the users'selection of the entities in the model or models (step 420). Themodeling environment also determines whether the data associated witheach of the selected entities is also associated with other selectedentities. The modeling environment displays the common data associatedwith all of the selected entities (“the intersection of the data”) onthe user interface (step 430). One of skill in the art will appreciatethat the display of the intersection of the data is illustrative and theuser interface may display all of the data associated with at least oneof the selected entities as described below in more detail withreference to FIG. 5.

FIG. 5 is a flow chart showing another exemplary operation of theillustrative embodiment of the present invention that displays the unionof the data for the selected entities. In the illustrative embodiment,the modeling environment displays a user interface for editing data ofthe multiple entities in one or more models loaded in the modelingenvironment (step 510). The modeling environment determines data of eachof the selected entities based on the users' selection of the entitiesin the models. The modeling environment also determines all of the dataassociated with at least one of the selected entities (“the union of thedata”). The modeling environment may further determine the intersectionof the data (step 520). The modeling environment displays in the userinterface the union of the data for the selected entities (step 530) inwhich the intersection of the data may be indicated so that the userscan identify the common data that is associated with all of the entitiesselected by the users (step 540). Exemplary user interfaces are depictedin FIGS. 6 and 7.

FIGS. 4 and 5 show exemplary operations for displaying the intersectionand the union of the data for the selected entities, respectively. Oneof ordinary skill in the art will appreciate that these operations areillustrative and other sets of operations may apply to the presentinvention. For example, the present invention may be practiced todisplay data unique to at least one of the selected entities (“theexclusive OR of the data”). The exclusive OR of the data of the selectedentities may be produced by subtracting the intersection of the datafrom the union of the data. One of skill in the art will appreciate thata mini toolbar may be provided at the top of the user interface showingset operations as buttons for: union, intersection and exclusive OR ofthe data.

FIGS. 6 and 7 are exemplary user interfaces including a pane dynamicallygenerated on the users' selection of multiple entities in a model ormodels. FIG. 6 shows that one model (f14) is loaded in the modelingenvironment, while FIG. 7 shows that two models (vdp and sf_car) areloaded in the modeling environment. The modeling environment may providea graphical user interface (GUI) 600 or 700 that includes three panesordered in a vertical manner. One of skill in the art will appreciatethat the GUIs 600 and 700 are for illustrative purposes and may take anyother forms, such as the GUIs ordered in a horizontal manner or the datain the three panes may be condensed into one or two panes or expandedinto more panes.

The left-hand pane 610 or 710 of the GUIs contains a hierarchical viewof all the presently loaded models. This hierarchical view mimics thesubsystem hierarchy as designed by the users for the model or models,respectively. In addition to showing the subsystems 612 or 712 at anyone particular level in the hierarchy, it shows the configurations 611or 711 and other information for each of the subsystems. The center pane620 or 720 shows the content view of the model or models. It shows theleaf blocks at each level as well as the subsystems and configurationand other information. Selections can be made in either the hierarchicalview 610 or 710 or the content view 620 or 720. When users selectmultiple entities in the hierarchical view 610 or 710 or the entity view620 or 720, the data for the selected entities is dynamically presentedto the users in the right-hand pane.

In FIG. 6, the hierarchical view 610 shows that the f14 model is loadedand selected, which includes a configuration 611 and subsystems 612. Thecenter pane 620 displays the content of the selected model, f14,including the configuration 611, subsystems 612 and leaf blocks of themodel. In the illustrative embodiment, the four gain blocks Gain, Gain1,Gain2, and Gain5 are selected, hence they are highlighted in the contentview 620. One of skill in the art will appreciate that the selection ofgain blocks is illustrative and users may select any other entities ofthe model provided in the GUI 600. The cross-section of data of theseblocks is dynamically generated and displayed in the right-hand pane630. In the illustrative embodiment, all of the data presented in theright-hand pane 630 are indicated to be available for editing, and,therefore, the name of the blocks is not included. For the values thatare identical throughout the selected entities, the widget 631 in theright-hand pane 630 appears in normal form so that the users can editthe value for selected blocks together.

In FIG. 7, the hierarchical view 710 shows that two models, vdp andsf_car, are loaded in the modeling environment and the vdp model isselected in the hierarchical view 710. The center pane 720 displays thecontent of the selected model (vdp) that includes the configuration,subsystems and leaf blocks of the model. One of skill in the art willappreciate that both of the models may be selected in the hierarchicalview 710 and the content view 720 may display the content of both of themodels selected in the hierarchical view 710. In the illustrativeembodiment, the two blocks, x1 block and x2 block, are selected andhighlighted in the content view 720. The union of the data of theseblocks is dynamically generated and displayed in the right-hand pane730. In the illustrative embodiment, the intersection of the data may bedisplayed normally in a clean widget. The widget for the data thatdiffers between the selected entities may be grayed out. For example,the blank 731 for the initial condition and the check boxes 732 of theselected block are grayed out to indicate that not all values are thesame in the selected blocks. In addition, if a property is a member ofmany entities' sets of properties, this property may be displayed bolderthan otherwise. Likewise, properties for entities that are rarer mayappear more faded. The resultant interface may give users a visualindication of the frequency of the different properties with respect tothe selection.

FIGS. 6 and 7 are exemplary user interfaces including panes 630 and 730dynamically generated on the users' selection of multiple entities in amodel (FIG. 6) and models (FIG. 7), respectively. Although theparameters and properties displayed in the panes 630 and 730 ispredetermined by the modeling environment to either the intersection ofthe data or the union of the data, one of skill in the art willappreciate that the modeling environment may enable users to customizethe panes 630 and 730 so that the users can select parameters andproperties of the selected entities to be displayed in the panes 630 and640. In other illustrative embodiments of the present invention, theusers may customize the panes 630 and 730 per instance. For example, theusers can select parameters and properties of Gain to be displayed inthe pane 630, and select parameters and properties of Gain 1, Gain 2 andGain 5 to be displayed in the pane 630.

FIG. 8 is a flow chart showing an exemplary operation of anotherillustrative embodiment of the present invention that displays the dataof the selected entities in separate panes. In this illustrativeembodiment, the modeling environment displays a GUI for editing data ofthe multiple entities in one or more models loaded in the modelingenvironment (step 810). FIG. 9 depicts a GUI 900 provided for editingdata of the multiple entities in the illustrative embodiment of thepresent invention. The left-hand pane 910 is a hierarchical view of themodels loaded in the modeling environment. The center pane 920 providesthe content of the model selected in the hierarchical view 910,including the configuration, subsystems and leaf blocks of the model. Inthe illustrative embodiment depicted in FIG. 9, multiple entities, suchas Fcn Block, Mu Block, Product block, and Sum Block, are selected onthe center pane 920. On the users' selection of the entities, themodeling environment determines the data of each of the selectedentities based on the users' selection of the entities in the models(step 820). The modeling environment may further determine whether thedata associated with each of the selected entities are common to all ofthe selected entities. The modeling environment displays the data ofeach of the selected entities on separate panes on a user interface(step 830). In the right pane 930 of the GUI 900 depicted in FIG. 9,separate panes for the selected entities, such as Fcn Block, Mu Block,Product block, and Sum Block, are displayed and overlapped with otherpanes. In each pane, the data common to the selected entities aredisplayed normally and the data that is not common to all of theselected entities are grayed out. One of skill in the art willappreciate that the right pane 930 may include a pane overlapped withother panes for displaying the intersection of the data of the selectedentities (Fcn Block, Mu Block, Product block, and Sum Block), asdescribed above with referenced to FIG. 4. One of skill in the art willalso appreciate that the right pane 930 may include a pane overlappedwith other panes for displaying the union of the data of the selectedentities (Fcn Block, Mu Block, Product block, and Sum Block), asdescribed above with referenced to FIG. 5.

In summary, the illustrative embodiment of the present inventionprovides for a dynamically generated user interface for editing multipleentities of a model or models together in a modeling environment. Themodels are implemented using a block diagram modeling tool in theillustrative embodiment, but the models may be implemented in othermodeling environments. The modeling environment provides a hierarchicalview or a content view of the entities of the model or models for theusers to select multiple entities of the model or models. On the users'selection of the multiple entities of the model or models, the modelingenvironment dynamically generates a user interface for the selectedentities. The dynamically generated user interface may enable the usersto edit the common data of the selected entities together. Thedynamically generated user interface may also display the data of theselected entities that are not common to all of the selected entities.The data displayed in the user interface may include attributes andoperations of the selected entities. The user interface may be generatedbased on the context in which the user operates the models. For example,if users are in an editing, simulation or external mode, the users maysee different properties of the models in a different dialog.

It will thus be seen that the invention attains the objectives stated inthe previous description. Since certain changes may be made withoutdeparting from the scope of the present invention, it is intended thatall matter contained in the above description or shown in theaccompanying drawings be interpreted as illustrative and not in aliteral sense. For example, the illustrative embodiment of the presentinvention may be practiced in any other modeling environments includingtextual and graphical modeling environments, such as a state-basedmodeling environment. Practitioners of the art will realize that thesequence of steps and architectures depicted in the figures may bealtered without departing from the scope of the present invention andthat the illustrations contained herein are singular examples of amultitude of possible depictions of the present invention.

1. In a computational device that provides a software environment, amethod for generating a formatted user interface in the softwareenvironment, the method comprising: providing a plurality of entities inone or more objects loaded in the software environment; and dynamicallygenerating a formatted user interface for editing information associatedwith the plurality of entities loaded in one of said objects.
 2. Themethod of claim 1, wherein the software environment comprises a modelingenvironment.
 3. The method of claim 1, further comprising: enabling userto select the plurality of entities in one or more objects loaded in thesoftware environment.
 4. The method of claim 1, wherein the users areable to select the plurality of entities using a multi-criteria searchmechanism.
 5. The method of claim 1 wherein the user interface isincluded in a different window than that providing the plurality ofentities in one or more objects loaded in the software environment. 6.The method of claim 1 wherein the user interface is generated based on amode in which the users operate with the object.
 7. The method of claim6 wherein the operation mode includes at least one of a mode for editingthe object, and a mode for simulating the object.
 8. The method of claim1 wherein the plurality of entities include components of one or moreobjects.
 9. The method of claim 1 wherein the plurality of entitiesinclude configurations of one or more objects.
 10. The method of claim 1wherein the information associated with the selected entities includesan intersection of properties of the plurality of entities.
 11. Themethod of claim 1 wherein the information associated with the selectedentities includes a union of properties of the plurality of entities.12. The method of claim 1 wherein the information associated with theselected entities includes an exclusive OR of properties of theplurality of entities.
 13. The method of claim 12 wherein the propertiesof the plurality of entities are displayed depending on a frequency ofthe properties in the plurality of entities.
 14. The method of claim 1wherein the information associated with the selected entities includesan intersection of operations of the plurality of entities.
 15. Themethod of claim 1 wherein the information associated with the selectedentities includes a complete or partial union of operations of theplurality of entities.
 16. The method of claim 1 wherein the informationassociated with the selected entities includes an exclusive OR ofoperations of the plurality of entities.
 17. The method of claim 1wherein the information associated with the selected entities includesan arbitrary number of set operations on the plurality of entities. 18.The method of claim 17 wherein the set operation is selected by theuser.
 19. The method of claim 1 wherein the user interface includes agraphical user interface.
 20. In a computational device that provides asoftware environment, a method for providing a formatted dynamic dialoginterface in the software environment, the method comprising: displayinga first user interface element for displaying entities of one or moreobjects loaded in the software environment, wherein the first interfaceelement enables users to select multiple entities displayed in the firstuser interface element; displaying a second user interface element fordisplaying attributes associated with the selected multiple entities.21. The method of claim 20 wherein the first and second interfaceelements are displayed in different panes of a same window.
 22. Themethod of claim 20 wherein the first and second interface elements areincluded in different windows.
 23. The method of claim 20 wherein thesecond user interface element is displayed dynamically on the selectionof the multiple entities.
 24. The method of claim 20 wherein the seconduser interface element displays an intersection of properties of themultiple entities.
 25. The method of claim 20 wherein the second userinterface element displays a partial or complete union of properties ofthe plurality of entities.
 26. The method of claim 20 wherein the seconduser interface element displays an exclusive OR of properties of theplurality of entities.
 27. The method of claim 25 wherein the attributesassociated with the selected entities that are not common with theselected multiple entities are indicated differently than the attributesassociated with the selected multiple entities that are commonproperties of the multiple entities.
 28. The method of claim 27 whereinthe attributes associated with the selected entities that are not commonwith the selected multiple entities are colored differently.
 29. Themethod of claim 20 wherein the second user interface enables the usersto edit attributes that are common with the selected entities.
 30. Themethod of claim 20 wherein the second user interface includes differentpanes, each pane displaying attributes associated with each of theselected entities.
 31. The method of claim 20 wherein the differentpanes are displayed in overlap.
 32. A medium holding instructionsexecutable in a computational device that provides an environment for asoftware system, comprising: providing a plurality of entities in one ormore objects loaded in the software environment; and dynamicallygenerating a formatted user interface for editing information associatedwith the plurality of entities.
 33. The medium of claim 32 wherein theenvironment includes a modeling environment and the objects comprisemodels created in the modeling environment.
 34. The medium of claim 32wherein the plurality of entities include components of one or moreobjects.
 35. The medium of claim 32 wherein the plurality of entitiesinclude configurations of one or more objects.
 36. A medium holdinginstructions executable in a computational device that provides anenvironment for a software system, comprising: displaying a first userinterface element for displaying entities of one or more objects loadedin the environment, wherein the first interface element enables users toselect multiple entities displayed in the first user interface element;displaying a second user interface element for displaying attributesassociated with the selected multiple entities.
 37. The medium of claim36 wherein the second user interface element displays all properties ofthe plurality of entities.
 38. The medium of claim 37 wherein theattributes associated with the selected entities that are not commonwith the selected multiple entities are indicated differently than theattributes associated with the selected multiple entities that arecommon properties of the multiple entities.
 39. The medium of claim 38wherein the attributes associated with the selected entities that arenot common with the selected multiple entities are colored differently.40. In a computational device that provides a modeling environment, amethod for generating a formatted user interface in the modelingenvironment, the method comprising: providing a plurality of entities inone or more models loaded in the modeling environment; and dynamicallygenerating a formatted user interface for editing information associatedwith the plurality of entities.
 41. The method of claim 40, furthercomprising: enabling user to select the plurality of entities in one ormore models loaded in the modeling environment.
 42. The method of claim40, wherein the users are able to select the plurality of entities usinga multi-criteria search mechanism.
 43. The method of claim 40 whereinthe user interface is included in a different window than that providingthe plurality of entities in one or more models loaded in the modelingenvironment.
 44. The method of claim 40 wherein the user interface isgenerated based on a mode in which the users operate with a model. 45.The method of claim 44 wherein the operation mode includes at least oneof a mode for editing the model, and a mode for simulating the model.46. The method of claim 40 wherein the environment includes a blockdiagram modeling environment.
 47. The method of claim 40 wherein theplurality of entities include components of one or more models.
 48. Themethod of claim 40 wherein the plurality of entities includeconfigurations of one or more models.
 49. The method of claim 40 whereinthe information associated with the selected entities includes anintersection of properties of the plurality of entities.
 50. The methodof claim 40 wherein the information associated with the selectedentities includes a union of properties of the plurality of entities.51. The method of claim 40 wherein the information associated with theselected entities includes an exclusive OR of properties of theplurality of entities.
 52. The method of claim 51 wherein the propertiesof the plurality of entities are displayed depending on a frequency ofthe properties in the plurality of entities.
 53. The method of claim 40wherein the information associated with the selected entities includesan intersection of operations of the plurality of entities.
 54. Themethod of claim 40 wherein the information associated with the selectedentities includes a complete or partial union of operations of theplurality of entities.
 55. The method of claim 40 wherein theinformation associated with the selected entities includes an exclusiveOR of operations of the plurality of entities.
 56. The method of claim40 wherein the information associated with the selected entitiesincludes an arbitrary number of set operations on the plurality ofentities.
 57. The method of claim 56 wherein the set operation isselected by the user.
 58. The method of claim 40 wherein the userinterface includes a graphical user interface.
 59. In a computationaldevice that provides a modeling environment, a method for providing aformatted dynamic dialog interface in the modeling environment, themethod comprising: displaying a first user interface element fordisplaying entities of one or more models loaded in the modelingenvironment, wherein the first interface element enables users to selectmultiple entities displayed in the first user interface element;displaying a second user interface element for displaying attributesassociated with the selected multiple entities.
 60. The method of claim59 wherein the first and second interface elements are displayed indifferent panes of a same window.
 61. The method of claim 59 wherein thefirst and second interface elements are included in different windows.62. The method of claim 59 wherein the second user interface element isdisplayed dynamically on the selection of the multiple entities.
 63. Themethod of claim 59 wherein the second user interface element displays anintersection of properties of the multiple entities.
 64. The method ofclaim 59 wherein the second user interface element displays a partial orcomplete union of properties of the plurality of entities.
 65. Themethod of claim 59 wherein the second user interface element displays anexclusive OR of properties of the plurality of entities.
 66. The methodof claim 64 wherein the attributes associated with the selected entitiesthat are not common with the selected multiple entities are indicateddifferently than the attributes associated with the selected multipleentities that are common properties of the multiple entities.
 67. Themethod of claim 66 wherein the attributes associated with the selectedentities that are not common with the selected multiple entities arecolored differently.
 68. The method of claim 59 wherein the second userinterface enables the users to edit attributes that are common with theselected entities.
 69. The method of claim 59 wherein the second userinterface includes different panes, each pane displaying attributesassociated with each of the selected entities.
 70. The method of claim59 wherein the different panes are displayed in overlap.
 71. A mediumholding instructions executable in a computational device that providesan environment for modeling a system, comprising: providing a pluralityof entities in one or more models loaded in the modeling environment;and dynamically generating a formatted user interface for editinginformation associated with the plurality of entities.
 72. The medium ofclaim 71 wherein the environment includes a block diagram modelingenvironment.
 73. The medium of claim 71 wherein the plurality ofentities include components of one or more models.
 74. The medium ofclaim 71 wherein the plurality of entities include configurations of oneor more models.
 75. A medium holding instructions executable in acomputational device that provides an environment for modeling a system,comprising: displaying a first user interface element for displayingentities of one or more models loaded in the modeling environment,wherein the first interface element enables users to select multipleentities displayed in the first user interface element; displaying asecond user interface element for displaying attributes associated withthe selected multiple entities.
 76. The medium of claim 75 wherein thesecond user interface element displays all properties of the pluralityof entities.
 77. The medium of claim 76 wherein the attributesassociated with the selected entities that are not common with theselected multiple entities are indicated differently than the attributesassociated with the selected multiple entities that are commonproperties of the multiple entities.
 78. The medium of claim 77 whereinthe attributes associated with the selected entities that are not commonwith the selected multiple entities are colored differently.
 79. Asystem comprising: a software environment for loading one or moreobjects, the one or more objects including a plurality of entities; anda first formatted user interface element dynamically generated forediting information associated with selected entities in the one or moreobjects.
 80. The system of claim 79, wherein the software environmentcomprises a modeling environment and the one or more object comprise oneor more models.
 81. The system of claim 79, further comprising: a seconduser interface element for displaying the plurality of entities of oneor more objects loaded in the software environment, wherein the seconduser interface element enables users to select multiple entitiesdisplayed in the second user interface element;
 82. The system of claim81, wherein the users are able to select a plurality of entities using amulti-criteria search mechanism.
 83. The system of claim 79, wherein theuser interface is generated based on a mode for editing the object, or amode for simulating the object.
 84. The system of claim 79 wherein theinformation associated with the entities includes an intersection ofproperties or operations of the plurality of entities.
 85. The system ofclaim 79 wherein the information associated with the entities includes aunion of properties or operations of the plurality of entities.
 86. Thesystem of claim 79 wherein the information associated with the entitiesincludes an exclusive OR of properties or operations of the plurality ofentities.
 87. The system of claim 79 wherein the information associatedwith the entities includes an arbitrary number of set operations on theplurality of entities.
 88. The system of claim 79 wherein the first userinterface enables the users to edit attributes that are common with theentities.
 89. The system of claim 79 wherein the first user interfaceincludes different panes, each pane displaying attributes associatedwith each of the entities.